1. Technical Field
The present invention relates generally to a method, system, and computer program product for designing an integrated circuit (IC). More particularly, the present invention relates to a method, system, and computer program product for improved routing of local clock interconnects to reduce delay in a network structure.
2. Description of the Related Art
Modern day electronics include components that use ICs. ICs are electronic circuits formed using Silicon as a substrate and by adding impurities to form solid-state electronic devices, such as transistors, diodes, and resistors. Commonly known as a “chip,” an IC is generally encased in hard plastic. The components in modern day electronics generally appear to be rectangular black plastic pellets with connector pins protruding from the plastic encasement.
Circuit designers use a variety of software tools to design electronic circuits that accomplish an intended task. For example, a digital circuit may be designed to accept digital inputs, perform some computation, and produce a digital output. An analog circuit may be designed to accept analog signals, manipulate the analog signals, such as my amplifying, filtering, or mixing the signals, and produce an analog or digital output. Generally, any type of circuit can be designed as an IC.
Logical synthesis, physical synthesis, and generation of a routed and timing-closed design are some of the functions of an IC design software tool. Logical synthesis is the process of designing the logical operation that is to be achieved by a circuit. Physical synthesis is the mapping, translating, or integration of that logical synthesis to the physical design components, such as logic gate and buffer circuits. Routing and timing-closed design is the design produced by adjusting the wire routings and component placements in a design so that the design meets certain design criteria such as delay of slew of signals, or wirelength restrictions.
The software tools used for designing ICs produce, manipulate, or otherwise work with the circuit layout at very small scales. Some of the components that such a tool may manipulate may only measure tens of nanometer across when formed in Silicon. The designs produced and manipulated using these software tools are complex, often including millions of such components interconnected to form an intended electronic circuitry.
The interconnects between components are called wires. A wire is a connection between parts of electronic components, and is formed using a metallic material that conducts electricity. A net is a collection of interconnections among a group of components. A wire forms a segment of a net, such as a connection between two components, or two connection points called pins.
A wire can be designed to take any one of the several available paths in a design. Placement of a wire on a certain path, or track, is a part of routing. A router is a component of an IC design tool that performs the routing function.
Wires serve many purposes in an IC design. For example, a wire can carry data signals, power, ground current, or one or more clock signals. Many IC designs are synchronized designs, to wit, a clock signal is used to synchronize all or part of the chip.
Clock signals can be delayed depending on the wires that carry the signals (clock wires). Generally, thick wires communicate the clock signals faster than thin wires. Even if the design calls for uniform dimensions for clock wires, manufacturing variations can cause the wires to have different characteristics causing delays in the clock signals.
The difference between the earliest and the latest arrival times of a clock signal using the clock wires in a given design is called “clock skew”. Ideally, clock skew should be zero, but practical designs often have some clock skew. Certain low performance designs, such as for circuits used in automobiles or simpler communication devices can tolerate significant clock skews. Certain other designs, such as those of microprocessors, require the clock skew to be within relatively smaller limits and tighter tolerances, such as on the order of less than 10 pico-seconds.